/*
 * create:2016年4月16日 下午12:30:41
 * author:wangds  
 */
package net.wangds.comp.endpoint.http.proc;

import net.wangds.comp.controller.http.HttpInteractionController;
import net.wangds.comp.endpoint.http.AbstractHttpInputOutputProcessor;
import net.wangds.comp.endpoint.http.HttpAccessContext;

/**
 * .
 * @author wangds
 *
 */
public class IaCtrlProc<I,O> extends AbstractHttpInputOutputProcessor<I,O>{

  private HttpInteractionController<I, O> ctrl;
  
  /**
   * The getter method of the property ctrl.
   * @author wangds 2016年4月16日 下午12:39:04.
   * @return the ctrl.
   */
  public HttpInteractionController<I, O> getCtrl() {
    return ctrl;
  }

  /**
   * The setter method of the property ctrl.
   * @param thectrl the ctrl to set
   * @author wangds 2016年4月16日 下午12:39:04.
   */
  public void setCtrl(HttpInteractionController<I, O> ctrl) {
    this.ctrl = ctrl;
  }

  /*
   * @see net.wangds.comp.endpoint.http.AbstractHttpInputOutputProcessor#process(net.wangds.comp.endpoint.http.HttpAccessContext, java.lang.Object)
   * @author wangds 2016年4月16日 下午12:38:07.
   */
  @Override
  protected O process(HttpAccessContext ctx, I in) throws Exception {
    this.getLogger().info("net.wangds.comp.endpoint.http.proc.IaCtrlProc.process(HttpAccessContext, I)");
    this.ctrl.setHttpRequest(ctx.getRequest());
    this.ctrl.setHttpResponse(ctx.getResponse());
    this.ctrl.setInput(in);
    this.ctrl.process();
    return this.ctrl.getOutput();
  }


}
